@ GNU AS assembler header file for WimpReadSysInfo
@ Written by DefMod (Dec  9 2012) on Sun Dec  9 15:48:23 2012
@ Jonathan Coxhead, jonathan@doves.demon.co.uk, 23 May 1995

@ OSLib---efficient, type-safe, transparent, extensible,
@ register-safe API coverage of RISC OS
@ 
@ Copyright (c) 1994-2012 Jonathan Coxhead and OSLib maintainers
@ 
@ Licence:
@ 
@    OSLib is free software; you can redistribute it and/or modify
@ it under the terms of the GNU General Public License as published by
@ the Free Software Foundation; either version 1, or (at your option)
@ any later version - and this with the following clarification and
@ special exception:
@ 
@    Linking this library statically or dynamically with other modules
@ is making a combined work based on this library. Thus, the terms
@ and conditions of the GNU General Public License cover the whole
@ combination.
@ 
@    As a special exception, the copyright holders of this library
@ give you permission to link this library with independent modules
@ to produce an executable, regardless of the license terms of these
@ independent modules, and to copy and distribute the resulting
@ executable under terms of your choice, provided that you also meet,
@ for each linked independent module, the terms and conditions of the
@ license of that module. An independent module is a module which is
@ not derived from or based on this library. If you modify this
@ library, you may extend this exception to your version of the library,
@ but you are not obliged to do so. If you do not wish to do so, delete
@ this exception statement from your version.
@ 
@    OSLib is distributed in the hope that it will be useful,
@ but WITHOUT ANY WARRANTY; without even the implied warranty of
@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@ GNU General Public License for more details.
@ 
@    You should have received a copy of the GNU General Public License
@ along with this programme; if not, write to the Free Software
@ Foundation, Inc, 675 Mass Ave, Cambridge, MA 02139, USA.

#ifndef WimpReadSysInfo_Hdr
#  define WimpReadSysInfo_Hdr

#  ifndef Get_Types
#    define Get_Types
#    include "oslib/Types.Hdr"
#  endif

#  ifndef Get_OS
#    define Get_OS
#    include "oslib/OS.Hdr"
#  endif

#  ifndef Get_Wimp
#    define Get_Wimp
#    include "oslib/Wimp.Hdr"
#  endif

#  ifndef Get_Font
#    define Get_Font
#    include "oslib/Font.Hdr"
#  endif

#  ifndef Get_OSSpriteOp
#    define Get_OSSpriteOp
#    include "oslib/OSSpriteOp.Hdr"
#  endif

@Symbols for constants
#  define WimpReadSysInfo_StateCommands 0x0
#  define WimpReadSysInfo_StateDesktop 0x1
#  define WimpReadSysInfo_DirLeftToRight 0x0
#  define WimpReadSysInfo_DirRightToLeft 0x1
#  define WimpReadSysInfoTextSelectionFlags_Enabled 0x1
#  define WimpReadSysInfoTextSelectionFlags_InsertOpMask 0x6
#  define WimpReadSysInfoTextSelectionFlags_InsertOpNOP 0x0
#  define WimpReadSysInfoTextSelectionFlags_InsertOpDel 0x2
#  define WimpReadSysInfoTextSelectionFlags_InsertOpClear 0x4
#  define WimpReadSysInfoTextSelectionFlags_InsertOpCut 0x6
#  define WimpReadSysInfoTextSelectionFlags_DelOpMask 0x18
#  define WimpReadSysInfoTextSelectionFlags_DelOpNOP 0x0
#  define WimpReadSysInfoTextSelectionFlags_DelOpDel 0x8
#  define WimpReadSysInfoTextSelectionFlags_DelOpClear 0x10
#  define WimpReadSysInfoTextSelectionFlags_DelOpCut 0x18
#  define WimpReadSysInfoTextSelectionFlags_MoveOpMask 0x60
#  define WimpReadSysInfoTextSelectionFlags_MoveOpNOP 0x0
#  define WimpReadSysInfoTextSelectionFlags_MoveOpDel 0x20
#  define WimpReadSysInfoTextSelectionFlags_MoveOpClear 0x40
#  define WimpReadSysInfoTextSelectionFlags_MoveOpCut 0x60
#  define WimpReadSysInfoTextSelectionFlags_AutoSelect 0x80

@Symbols for structure offsets and sizes
        .struct 0
        .skip   Int
WimpReadSysInfo_State          : 

        .struct 0
        .skip   Int
WimpReadSysInfo_Direction      : 

        .struct 0
        .skip   Bits
WimpReadSysInfoTextSelection_Flags: 


@Symbols for SWI's and SWI reason codes
.set XWimp_ReadSysInfo,0x600f2
.set Wimp_ReadSysInfo,0x400f2

#  define WimpReadSysInfo_TaskCount 0x0
   @Entry
   @  R0 = &0
   @Exit
   @  R0 = task_count (Int)

#  define WimpReadSysInfo_WimpMode 0x1
   @Entry
   @  R0 = &1
   @Exit
   @  R0 = mode (OS_Mode)

#  define WimpReadSysInfo_SpriteSuffix 0x2
   @Entry
   @  R0 = &2
   @Exit
   @  R0 -> suffix (String)

#  define WimpReadSysInfo_DesktopState 0x3
   @Entry
   @  R0 = &3
   @Exit
   @  R0 = state (WimpReadSysInfo_State)

#  define WimpReadSysInfo_WriteDir 0x4
   @Entry
   @  R0 = &4
   @Exit
   @  R0 = write_dir (WimpReadSysInfo_Direction)

#  define WimpReadSysInfo_Task 0x5
   @Entry
   @  R0 = &5
   @Exit
   @  R0 = task (Wimp_T)
   @  R1 = version (Wimp_VersionNo)

#  define WimpReadSysInfo_Version 0x7
   @Entry
   @  R0 = &7
   @Exit
   @  R0 = version (Wimp_VersionNo)

#  define WimpReadSysInfo_Font 0x8
   @Entry
   @  R0 = &8
   @Exit
   @  R0 = font (Font_F)
   @  R1 = symbol_font (Font_F)

#  define WimpReadSysInfo_ToolSprites 0x9
   @Entry
   @  R0 = &9
   @Exit
   @  R0 -> toolsprites (OSSpriteOp_Area)

#  define WimpReadSysInfo_ApplicationLimit 0xb
   @Entry
   @  R0 = &B
   @Exit
   @  R0 = size_limit (Int)

#  define WimpReadSysInfo_SpritePools 0x10
   @Entry
   @  R0 = &10
   @Exit
   @  R0 -> low_priority (OSSpriteOp_Area)
   @  R1 -> high_priority (OSSpriteOp_Area)

#  define WimpReadSysInfo_AutoScrollPauseDelay 0x11
   @Entry
   @  R0 = &11
   @Exit
   @  R0 = delay (Int)

#  define WimpReadSysInfo_SpritePoolsExtended 0x13
   @Entry
   @  R0 = &13
   @Exit
   @  R0 -> priority (OSSpriteOp_Area)
   @  R1 -> high_priority (OSSpriteOp_Area)
   @  R2 -> low_priority (OSSpriteOp_Area)

#  define WimpReadSysInfo_SpecialHighlightingColours 0x14
   @Entry
   @  R0 = &14
   @Exit
   @  R0 = bg (Wimp_Colour)
   @  R1 = fg (Wimp_Colour)

#  define WimpReadSysInfo_TextSelection 0x15
   @Entry
   @  R0 = &15
   @  R2 = &1
   @Exit
   @  R0 = bg (Wimp_Colour)
   @  R1 = fg (Wimp_Colour)
   @  R2 = flags (WimpReadSysInfoTextSelection_Flags)

#  define WimpReadSysInfo_CaretColour 0x16
   @Entry
   @  R0 = &16
   @Exit
   @  R0 = def (Wimp_Colour)
   @  R1 = actual (Wimp_Colour)

#  define WimpReadSysInfo_DragSettings 0x17
   @Entry
   @  R0 = &17
   @Exit
   @  R0 = os_units_move (Int)
   @  R1 = delay (Int)

#  define WimpReadSysInfo_DblClickSettings 0x18
   @Entry
   @  R0 = &18
   @Exit
   @  R0 = os_units_move (Int)
   @  R1 = delay (Int)

#  define WimpReadSysInfo_SubMenuOpenSettings 0x19
   @Entry
   @  R0 = &19
   @Exit
   @  R0 = delay_for_open (Int)
   @  R1 = delay_mouse_ignore (Int)

#  define WimpReadSysInfo_IconBarScrollSettings 0x1a
   @Entry
   @  R0 = &1A
   @Exit
   @  R0 = speed (Int)
   @  R1 = acceleration (Int)

#  define WimpReadSysInfo_EdgeSettings 0x1b
   @Entry
   @  R0 = &1B
   @Exit
   @  R0 = delay (Int)

#endif
